Vagrant 使用回顾
- [Vagrant 的安装使用](Vagrant 的安装使用.md)
- [Vagrant 做 Docker 机器的测试环境](Vagrant 做 Docker 机器的测试环境.md)
- [Vagrant 本地 Box 指定版本号](Vagrant 本地 Box 指定版本号.md)
虽然没有整理成为一个系列, 内容略有重复, 但是还是囊括了这两年使用 Vagrant 遇到的大部分问题.
基本 Vagrant 操作分为
管理 Box: box add
, box list
, box remove
管理虚拟机: init
初始化, up
唤起, status
/global-status
查看状态, ssh
链接, reload
重新加载配置, halt
关机, suspend/resume
暂停/恢复, destroy
删除.
管理 Snapshot: snapshot save
生成快照, snapshot list
查看列表, snapshot restore
恢复, snapshot delete
删除
模拟 Docker V8s 测试环境
文章最后附上经过修改的启动脚本 Vagrantfile
, 使用 vagrant up
可以一次性启动 5 台 Node 服务器, 1 台 Master 服务器, 1 台 Ansible 运维机, 使用 vagrant status
查看服务器状态.
SSH 连接虚拟机
在文件夹目录下 vagrant ssh SERVER_NAME
可以直接链接.
由于前面使用了 insert_key = false
使得每个虚拟机都不单独生成各自的 ssh key, 统一使用系统默认的 insecure_private_key
, 位于主机 ~/.vagrant.d/
目录下, 进行连接的时候, ssh vagrant@SERVER_IP_ADDR -i ~/.vagrant.d/insecure_private_key
即可链接.
虚拟机的暂停与恢复, 快照与恢复
使用 suspend 暂停, resume 恢复虚拟机.
1 | vagrant suspend [SERVER_NAME] |
使用 snapshot save 生成快照, snapshot restore 恢复快照, snapshot list 查看快照.
1 | vagrant snapshot save [SERVER_NAME] SNAPSHOT_NAME |
PS: 如果指定 SERVER_NAME 则是对单个虚拟机操作, 不指定则操作所有虚拟机.
PS: 在 Windows 上做测试的时候, 所有命令必须带 SERVER_NAME 才能生效… o(╥﹏╥)o
虚拟机配置文件修改后的应用生效
1 | vagrant reload [SERVER_NAME] --provision |
Vagrantfile 脚本
1 | # -*- mode: ruby -*- |